package sy.action;

import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.By;
import org.nutz.mvc.annotation.Fail;
import org.nutz.mvc.annotation.Filters;
import org.nutz.mvc.annotation.IocBy;
import org.nutz.mvc.annotation.Modules;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.SetupBy;
import org.nutz.mvc.ioc.provider.ComboIocProvider;

import sy.bo.SessionInfo;
import sy.filter.SessionFilter;

/**
 * MVC主模块，所有其他action都放到这个类同级或子级的目录中，就能自动识别为action
 * 
 * Filters的作用是如果session中没有sessionInfo的信息，那么就返回JSON信息
 * 
 * @author 孙宇
 *
 */
@Modules(scanPackage = true)
@IocBy(type = ComboIocProvider.class, args = { "*org.nutz.ioc.loader.json.JsonLoader", "h2DataSource.js", "ioc.js", "*org.nutz.ioc.loader.annotation.AnnotationIocLoader", "sy" })
@SetupBy(AppSetup.class)
@Ok("json")
@Fail("json")
@Filters(@By(type = SessionFilter.class, args = { SessionInfo.SESSIONINFONAME }))
public class MainModule {

	/**
	 * 
	 * 如果访问的是http://localhost:8080，就直接跳转到/WEB-INF/jsp/index.jsp页面
	 * 
	 */
	@At({ "/" })
	@Ok("jsp:jsp.index")
	public void index() {
		// 会调用SessionFilter.class里面验证session，如果通过验证，就跳转到index.jsp，如果未通过验证，就跳转到login.jsp，详情看SessionFilter.class
	}

}
